package com.eurasia.assignment.infrastructure.repository;


import com.eurasia.assignment.domain.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;

@Repository
public interface StatisticsRepository extends JpaRepository<User, Long> {
    /**
     * 统计所有学生人数
     * @return 学生总人数
     */
    @Query("SELECT COUNT(u.id) FROM User u")
    long countAllStudents();


    /**
     * 统计角色description为"学生"的用户人数
     * 使用LEFT JOIN确保即使没有角色的用户也会被包含在结果中
     * 然后通过WHERE条件筛选出description为"学生"的记录
     */
    @Query("SELECT COUNT(DISTINCT u.id) FROM User u " +
            "WHERE u.role = 'STUDENT'")
    long countStudentsWithRole();

}


